[Mobile Hacking 4] Insecure-Data-Storage

[Mobile Hacking 4] Insecure-Data-Storage

Lecture
Security
νƒœκ·Έ
mobile hacking
security
public
μ™„μ„±
Y
생성일
Mar 18, 2024 05:34 AM
LectureName
Mobile Hacking (Android- checklist)

1. Data Storage


1.1 μ•ˆλ“œλ‘œμ΄λ“œμ—μ„œ 데이터λ₯Ό μ €μž₯ν•˜λŠ” 방법

μ•ˆλ“œλ‘œμ΄λ“œμ—μ„œλŠ” 데이터λ₯Ό λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ μ €μž₯ν•©λ‹ˆλ‹€. μ €μž₯ν•˜λŠ” 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
ν•­λͺ©
μ„€λͺ…
Shared Preferences
μ›μ‹œ 데이터λ₯Ό μ €μž₯ν•˜λŠ” XML파일둜 /data/data/pakage/~ ν•­λͺ©μ— μ‘΄μž¬ν•œλ‹€.
λ‚΄λΆ€ μ €μž₯μ†Œ
μ•ˆλ“œλ‘œμ΄λ“œ ν”Œλž«νΌ, μ‹œμŠ€ν…œ 도ꡬ, μ•±, 그리고 μ•±μ—μ„œ μ‚¬μš©ν•˜λŠ” 데이터가 μ €μž₯λ˜λŠ” 곡간이닀. 각 앱은 μžμ‹ μ˜ νŒ¨ν‚€μ§€ 이름과 μΌμΉ˜ν•˜λŠ” 디렉터리λ₯Ό μƒμ„±ν•˜μ—¬ ν•΄λ‹Ή 디렉터리 μ•ˆμ˜ νŒŒμΌμ„ 읽고 μ“Έ 수 μžˆλ‹€.
μ™ΈλΆ€ μ €μž₯μ†Œ
μ•± κ°„μ˜ 데이터 κ³΅μœ κ°€ κ°€λŠ₯ν•˜λ©°, μ €μž₯λ˜λŠ” νŒŒμΌλ“€μ€ μ–΄λ””μ„œλ“  읽고 μ“°κΈ°κ°€ κ°€λŠ₯ν•˜λ‹€. 각 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ€ WRITE_EXTERNAL_STORAGE κΆŒν•œμ„ 가지고 μžˆλ‹€λ©΄ 데이터λ₯Ό 읽고, μ“Έ 수 μžˆλ‹€.
SQLite DB
μ•ˆλ“œλ‘œμ΄λ“œμ—μ„œ μ‚¬μš©ν•˜λŠ” 둜컬 DB둜, νŒŒμΌμ€ /data/data/νŒ¨ν‚€μ§€/databases/ κ²½λ‘œμ— μƒμ„±λœλ‹€. 주둜 μ„œλ²„μ™€ ν†΅μ‹ ν•˜μ§€ μ•ŠλŠ” 앱을 λ§Œλ“€ 경우. SQLiteλ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μž„μ‹œλ‘œ μ €μž₯ν•œλ‹€.
Netwrok Connection
λ„€νŠΈμ›Œν¬λ‘œ 데이터λ₯Ό μ €μž₯ν•˜κ±°λ‚˜, λΆˆλŸ¬μ˜€λŠ” λ°©λ²•μœΌλ‘œ SQLite λ°μ΄ν„°λ² μ΄μŠ€μ™€ κ°„λ‹¨ν•œ ν…μŠ€νŠΈ 파일 등을 보낼 수 μžˆλ‹€.
Β 

1.2 Insecure Data Storage

ν•΄λ‹Ή 취약점은 κ²½μš°μ— 따라 λ§Žμ€ 해석이 λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. μ•”ν˜Έν™” λ˜μ§€ μ•Šμ€ 데이터가 /data/data/ κ²½λ‘œμ— μ‘΄μž¬ν•˜κ±°λ‚˜, sdcard 같이 μ™ΈλΆ€ μ €μž₯μ†Œμ— μ€‘μš”ν•œ 데이터가 μ €μž₯λ˜λŠ” 경우 λ“± μ—¬λŸ¬κ°€μ§€ μš”μ†Œκ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€.
Β 

1.3 μ˜ˆμ‹œ

  1. μ†‘κΈˆ 내역등이 μ•”ν˜Έν™” λ˜μ§€ μ•Šκ³  데이터 μ˜μ—­μ— κ·ΈλŒ€λ‘œ 쑴재
  1. SQLite3μ•ˆμ— λ“€μ–΄κ°€λŠ” 데이터듀이 μ•”ν˜Έν™”λ˜μ§€ μ•Šκ³  μ €μž₯됨
  1. μ™ΈλΆ€ μ €μž₯μ†Œμ— μ€‘μš”ν•œ 데이터 μ €μž₯
  1. μ€‘μš” μ•± λ‚΄λΆ€ 데이터 μ ‘κ·Ό ν—ˆμš©
Β 
Β 

2. λŒ€μ‘λ°©μ•ˆ


  • λ‚΄λΆ€ μ €μž₯μ†Œμ— 데이터λ₯Ό μ €μž₯ν• λ•ŒλŠ” APIλ₯Ό μ΄μš©ν•˜μ—¬ λ‚΄λΆ€ μ €μž₯μ†Œμ— μ €μž₯λ˜λŠ” νŒŒμΌμ„ κ°•μ œλ‘œ μ•”ν˜Έν™” ν•˜μ—¬μ•Ό ν•©λ‹ˆλ‹€.
  • sdcard에 μ €μž₯ν• λ•ŒλŠ” μ•”ν˜Έν™” μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•˜μ—¬ μ €μž₯λ˜λŠ” νŒŒμΌμ„ μ•”ν˜Έν™” ν•˜μ—¬μ•Ό ν•©λ‹ˆλ‹€.
  • SharedPreferencesλ₯Ό μ‚¬μš©ν•  λ•Œμ—λŠ” λͺ¨λ“œ 섀정에 μœ μ˜ν•˜μ—¬μ•Ό ν•©λ‹ˆλ‹€.
  • μ€‘μš”ν•œ μ •λ³΄λŠ” κ²½μš°μ— 따라 μš΄μ˜μ²΄μ œμ—μ„œ μ œκ³΅ν•˜λŠ” κΈ°λ³Έ μ•”ν˜Έν™” λ©”μ»€λ‹ˆμ¦˜ μ΄μƒμ˜ μ•”ν˜Έν™” λ©”μ»€λ‹ˆμ¦˜μ„ κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€.
Β 
πŸ’‘
SharedPreferences κΆŒν•œ
  • MODE_PRIVATE : μ•± λ‚΄λΆ€μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯
  • MODE_WORLD_READABLE : μ•± μ™ΈλΆ€μ—μ„œ 읽을 수 있음
  • MODE_WORLD_WRITABLE : μ•± μ™ΈλΆ€μ—μ„œ μ“Έ 수 있음
Β